home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / demos / GL / atlantis / whale.c < prev   
C/C++ Source or Header  |  1994-08-01  |  47KB  |  1,810 lines

  1. /*
  2.  * Copyright 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #include <gl.h>
  18. #include <math.h>
  19. #include "fish.h"
  20. #include "atlantis.h"
  21.  
  22. /* whale */
  23. static float N001[3] = { 0.019249 ,0.011340 ,-0.999750};
  24. static float N002[3] = { -0.132579 ,0.954547 ,0.266952};
  25. static float N003[3] = { -0.196061 ,0.980392 ,-0.019778};
  26. static float N004[3] = { 0.695461 ,0.604704 ,0.388158};
  27. static float N005[3] = { 0.870600 ,0.425754 ,0.246557};
  28. static float N006[3] = { -0.881191 ,0.392012 ,0.264251};
  29. static float N007[3] = { 0.000000 ,1.000000 ,0.000000};
  30. static float N008[3] = { -0.341437 ,0.887477 ,0.309523};
  31. static float N009[3] = { 0.124035 ,-0.992278 ,0.000000};
  32. static float N010[3] = { 0.242536 ,0.000000 ,-0.970143};
  33. static float N011[3] = { 0.588172 ,0.000000 ,0.808736};
  34. static float N012[3] = { 0.929824 ,-0.340623 ,-0.139298};
  35. static float N013[3] = { 0.954183 ,0.267108 ,-0.134865};
  36. static float N014[3] = { 0.495127 ,0.855436 ,-0.151914};
  37. static float N015[3] = { -0.390199 ,0.906569 ,-0.160867};
  38. static float N016[3] = { -0.923605 ,0.354581 ,-0.145692};
  39. static float N017[3] = { -0.955796 ,-0.260667 ,-0.136036};
  40. static float N018[3] = { -0.501283 ,-0.853462 ,-0.142540};
  41. static float N019[3] = { 0.405300 ,-0.901974 ,-0.148913};
  42. static float N020[3] = { 0.909913 ,-0.392746 ,-0.133451};
  43. static float N021[3] = { 0.936494 ,0.331147 ,-0.115414};
  44. static float N022[3] = { 0.600131 ,0.793724 ,-0.099222};
  45. static float N023[3] = { -0.231556 ,0.968361 ,-0.093053};
  46. static float N024[3] = { -0.844369 ,0.525330 ,-0.105211};
  47. static float N025[3] = { -0.982725 ,-0.136329 ,-0.125164};
  48. static float N026[3] = { -0.560844 ,-0.822654 ,-0.093241};
  49. static float N027[3] = { 0.263884 ,-0.959981 ,-0.093817};
  50. static float N028[3] = { 0.842057 ,-0.525192 ,-0.122938};
  51. static float N029[3] = { 0.921620 ,0.367565 ,-0.124546};
  52. static float N030[3] = { 0.613927 ,0.784109 ,-0.090918};
  53. static float N031[3] = { -0.448754 ,0.888261 ,-0.098037};
  54. static float N032[3] = { -0.891865 ,0.434376 ,-0.126077};
  55. static float N033[3] = { -0.881447 ,-0.448017 ,-0.149437};
  56. static float N034[3] = { -0.345647 ,-0.922057 ,-0.174183};
  57. static float N035[3] = { 0.307998 ,-0.941371 ,-0.137688};
  58. static float N036[3] = { 0.806316 ,-0.574647 ,-0.140124};
  59. static float N037[3] = { 0.961346 ,0.233646 ,-0.145681};
  60. static float N038[3] = { 0.488451 ,0.865586 ,-0.110351};
  61. static float N039[3] = { -0.374290 ,0.921953 ,-0.099553};
  62. static float N040[3] = { -0.928504 ,0.344533 ,-0.138485};
  63. static float N041[3] = { -0.918419 ,-0.371792 ,-0.135189};
  64. static float N042[3] = { -0.520666 ,-0.833704 ,-0.183968};
  65. static float N043[3] = { 0.339204 ,-0.920273 ,-0.195036};
  66. static float N044[3] = { 0.921475 ,-0.387382 ,-0.028636};
  67. static float N045[3] = { 0.842465 ,0.533335 ,-0.076204};
  68. static float N046[3] = { 0.380110 ,0.924939 ,0.002073};
  69. static float N047[3] = { -0.276128 ,0.961073 ,-0.009579};
  70. static float N048[3] = { -0.879684 ,0.473001 ,-0.049250};
  71. static float N049[3] = { -0.947184 ,-0.317614 ,-0.044321};
  72. static float N050[3] = { -0.642059 ,-0.764933 ,-0.051363};
  73. static float N051[3] = { 0.466794 ,-0.880921 ,-0.077990};
  74. static float N052[3] = { 0.898509 ,-0.432277 ,0.076279};
  75. static float N053[3] = { 0.938985 ,0.328141 ,0.103109};
  76. static float N054[3] = { 0.442420 ,0.895745 ,0.043647};
  77. static float N055[3] = { -0.255163 ,0.966723 ,0.018407};
  78. static float N056[3] = { -0.833769 ,0.540650 ,0.111924};
  79. static float N057[3] = { -0.953653 ,-0.289939 ,0.080507};
  80. static float N058[3] = { -0.672357 ,-0.730524 ,0.119461};
  81. static float N059[3] = { 0.522249 ,-0.846652 ,0.102157};
  82. static float N060[3] = { 0.885868 ,-0.427631 ,0.179914};
  83. static float N061[3] = { 0.000000 ,1.000000 ,0.000000};
  84. static float N062[3] = { 0.648942 ,0.743116 ,0.163255};
  85. static float N063[3] = { -0.578967 ,0.807730 ,0.111219};
  86. static float N064[3] = { 0.000000 ,1.000000 ,0.000000};
  87. static float N065[3] = { -0.909864 ,-0.352202 ,0.219321};
  88. static float N066[3] = { -0.502541 ,-0.818090 ,0.279610};
  89. static float N067[3] = { 0.322919 ,-0.915358 ,0.240504};
  90. static float N068[3] = { 0.242536 ,0.000000 ,-0.970143};
  91. static float N069[3] = { 0.000000 ,1.000000 ,0.000000};
  92. static float N070[3] = { 0.000000 ,1.000000 ,0.000000};
  93. static float N071[3] = { 0.000000 ,1.000000 ,0.000000};
  94. static float N072[3] = { 0.000000 ,1.000000 ,0.000000};
  95. static float N073[3] = { 0.000000 ,1.000000 ,0.000000};
  96. static float N074[3] = { 0.000000 ,1.000000 ,0.000000};
  97. static float N075[3] = { 0.031220 ,0.999025 ,-0.031220};
  98. static float N076[3] = { 0.000000 ,1.000000 ,0.000000};
  99. static float N077[3] = { 0.446821 ,0.893642 ,0.041889};
  100. static float N078[3] = { 0.863035 ,-0.100980 ,0.494949};
  101. static float N079[3] = { 0.585597 ,-0.808215 ,0.062174};
  102. static float N080[3] = { 0.000000 ,1.000000 ,0.000000};
  103. static float N081[3] = { 1.000000 ,0.000000 ,0.000000};
  104. static float N082[3] = { 0.000000 ,1.000000 ,0.000000};
  105. static float N083[3] = { -1.000000 ,0.000000 ,0.000000};
  106. static float N084[3] = { -0.478893 ,0.837129 ,-0.264343};
  107. static float N085[3] = { 0.000000 ,1.000000 ,0.000000};
  108. static float N086[3] = { 0.763909 ,0.539455 ,-0.354163};
  109. static float N087[3] = { 0.446821 ,0.893642 ,0.041889};
  110. static float N088[3] = { 0.385134 ,-0.908288 ,0.163352};
  111. static float N089[3] = { -0.605952 ,0.779253 ,-0.159961};
  112. static float N090[3] = { 0.000000 ,1.000000 ,0.000000};
  113. static float N091[3] = { 0.000000 ,1.000000 ,0.000000};
  114. static float N092[3] = { 0.000000 ,1.000000 ,0.000000};
  115. static float N093[3] = { 0.000000 ,1.000000 ,0.000000};
  116. static float N094[3] = { 1.000000 ,0.000000 ,0.000000};
  117. static float N095[3] = { -1.000000 ,0.000000 ,0.000000};
  118. static float N096[3] = { 0.644444 ,-0.621516 ,0.445433};
  119. static float N097[3] = { -0.760896 ,-0.474416 ,0.442681};
  120. static float N098[3] = { 0.636888 ,-0.464314 ,0.615456};
  121. static float N099[3] = { -0.710295 ,0.647038 ,0.277168};
  122. static float N100[3] = { 0.009604 ,0.993655 ,0.112063};
  123. static float N101[3] = { 0.000000 ,1.000000 ,0.000000};
  124. static float N102[3] = { 0.000000 ,1.000000 ,0.000000};
  125. static float N103[3] = { 0.000000 ,1.000000 ,0.000000};
  126. static float N104[3] = { 0.031837 ,0.999285 ,0.020415};
  127. static float N105[3] = { 0.031837 ,0.999285 ,0.020415};
  128. static float N106[3] = { 0.031837 ,0.999285 ,0.020415};
  129. static float N107[3] = { 0.014647 ,0.999648 ,0.022115};
  130. static float N108[3] = { 0.014647 ,0.999648 ,0.022115};
  131. static float N109[3] = { 0.014647 ,0.999648 ,0.022115};
  132. static float N110[3] = { -0.985141 ,0.039475 ,0.167149};
  133. static float N111[3] = { -0.985141 ,0.039475 ,0.167149};
  134. static float N112[3] = { -0.985141 ,0.039475 ,0.167149};
  135. static float N113[3] = { 0.000000 ,1.000000 ,0.000000};
  136. static float N114[3] = { 0.000000 ,1.000000 ,0.000000};
  137. static float N115[3] = { 0.000000 ,1.000000 ,0.000000};
  138. static float N116[3] = { 0.000000 ,1.000000 ,0.000000};
  139. static float N117[3] = { 0.000000 ,1.000000 ,0.000000};
  140. static float N118[3] = { 0.000000 ,1.000000 ,0.000000};
  141. static float N119[3] = { 0.000000 ,1.000000 ,0.000000};
  142. static float N120[3] = { 0.000000 ,1.000000 ,0.000000};
  143. static float N121[3] = { 0.000000 ,1.000000 ,0.000000};
  144. static float iP001[3] = {          18.74,          13.19,           3.76 };
  145. static float P001[3] = {          18.74,          13.19,           3.76 };
  146. static float P002[3] = {           0.00,         390.42,       10292.57 };
  147. static float P003[3] = {          55.80,         622.31,        8254.35 };
  148. static float P004[3] = {          20.80,         247.66,       10652.13 };
  149. static float P005[3] = {         487.51,         198.05,        9350.78 };
  150. static float P006[3] = {        -457.61,         199.04,        9353.01 };
  151. static float P007[3] = {           0.00,         259.00,       10276.27 };
  152. static float P008[3] = {         -34.67,         247.64,       10663.71 };
  153. static float iP009[3] = {          97.46,          67.63,         593.82 };
  154. static float iP010[3] = {         -84.33,          67.63,         588.18 };
  155. static float iP011[3] = {         118.69,           8.98,         -66.91 };
  156. static float P009[3] = {          97.46,          67.63,         593.82 };
  157. static float P010[3] = {         -84.33,          67.63,         588.18 };
  158. static float P011[3] = {         118.69,           8.98,         -66.91 };
  159. static float iP012[3] = {         156.48,         -31.95,         924.54 };
  160. static float iP013[3] = {         162.00,         110.22,         924.54 };
  161. static float iP014[3] = {          88.16,         221.65,         924.54 };
  162. static float iP015[3] = {         -65.21,         231.16,         924.54 };
  163. static float iP016[3] = {        -156.48,         121.97,         924.54 };
  164. static float iP017[3] = {        -162.00,         -23.93,         924.54 };
  165. static float iP018[3] = {         -88.16,        -139.10,         924.54 };
  166. static float iP019[3] = {          65.21,        -148.61,         924.54 };
  167. static float iP020[3] = {         246.87,         -98.73,        1783.04 };
  168. static float iP021[3] = {         253.17,         127.76,        1783.04 };
  169. static float iP022[3] = {         132.34,         270.77,        1783.04 };
  170. static float iP023[3] = {         -97.88,         285.04,        1783.04 };
  171. static float iP024[3] = {        -222.97,         139.80,        1783.04 };
  172. static float iP025[3] = {        -225.29,         -86.68,        1783.04 };
  173. static float iP026[3] = {        -108.44,        -224.15,        1783.04 };
  174. static float iP027[3] = {          97.88,        -221.56,        1783.04 };
  175. static float iP028[3] = {         410.55,        -200.66,        3213.87 };
  176. static float iP029[3] = {         432.19,         148.42,        3213.87 };
  177. static float iP030[3] = {         200.66,         410.55,        3213.87 };
  178. static float iP031[3] = {        -148.42,         432.19,        3213.87 };
  179. static float iP032[3] = {        -407.48,         171.88,        3213.87 };
  180. static float iP033[3] = {        -432.19,        -148.42,        3213.87 };
  181. static float iP034[3] = {        -148.88,        -309.74,        3213.87 };
  182. static float iP035[3] = {         156.38,        -320.17,        3213.87 };
  183. static float iP036[3] = {         523.39,        -303.81,        4424.57 };
  184. static float iP037[3] = {         574.66,         276.84,        4424.57 };
  185. static float iP038[3] = {         243.05,         492.50,        4424.57 };
  186. static float iP039[3] = {        -191.23,         520.13,        4424.57 };
  187. static float iP040[3] = {        -523.39,         304.01,        4424.57 };
  188. static float iP041[3] = {        -574.66,        -231.83,        4424.57 };
  189. static float iP042[3] = {        -266.95,        -578.17,        4424.57 };
  190. static float iP043[3] = {         211.14,        -579.67,        4424.57 };
  191. static float iP044[3] = {         680.57,        -370.27,        5943.46 };
  192. static float iP045[3] = {         834.01,         363.09,        5943.46 };
  193. static float iP046[3] = {         371.29,         614.13,        5943.46 };
  194. static float iP047[3] = {        -291.43,         621.86,        5943.46 };
  195. static float iP048[3] = {        -784.13,         362.60,        5943.46 };
  196. static float iP049[3] = {        -743.29,        -325.82,        5943.46 };
  197. static float iP050[3] = {        -383.24,        -804.77,        5943.46 };
  198. static float iP051[3] = {         283.47,        -846.09,        5943.46 };
  199. static float P012[3] = {         156.48,         -31.95,         924.54 };
  200. static float P013[3] = {         162.00,         110.22,         924.54 };
  201. static float P014[3] = {          88.16,         221.65,         924.54 };
  202. static float P015[3] = {         -65.21,         231.16,         924.54 };
  203. static float P016[3] = {        -156.48,         121.97,         924.54 };
  204. static float P017[3] = {        -162.00,         -23.93,         924.54 };
  205. static float P018[3] = {         -88.16,        -139.10,         924.54 };
  206. static float P019[3] = {          65.21,        -148.61,         924.54 };
  207. static float P020[3] = {         246.87,         -98.73,        1783.04 };
  208. static float P021[3] = {         253.17,         127.76,        1783.04 };
  209. static float P022[3] = {         132.34,         270.77,        1783.04 };
  210. static float P023[3] = {         -97.88,         285.04,        1783.04 };
  211. static float P024[3] = {        -222.97,         139.80,        1783.04 };
  212. static float P025[3] = {        -225.29,         -86.68,        1783.04 };
  213. static float P026[3] = {        -108.44,        -224.15,        1783.04 };
  214. static float P027[3] = {          97.88,        -221.56,        1783.04 };
  215. static float P028[3] = {         410.55,        -200.66,        3213.87 };
  216. static float P029[3] = {         432.19,         148.42,        3213.87 };
  217. static float P030[3] = {         200.66,         410.55,        3213.87 };
  218. static float P031[3] = {        -148.42,         432.19,        3213.87 };
  219. static float P032[3] = {        -407.48,         171.88,        3213.87 };
  220. static float P033[3] = {        -432.19,        -148.42,        3213.87 };
  221. static float P034[3] = {        -148.88,        -309.74,        3213.87 };
  222. static float P035[3] = {         156.38,        -320.17,        3213.87 };
  223. static float P036[3] = {         523.39,        -303.81,        4424.57 };
  224. static float P037[3] = {         574.66,         276.84,        4424.57 };
  225. static float P038[3] = {         243.05,         492.50,        4424.57 };
  226. static float P039[3] = {        -191.23,         520.13,        4424.57 };
  227. static float P040[3] = {        -523.39,         304.01,        4424.57 };
  228. static float P041[3] = {        -574.66,        -231.83,        4424.57 };
  229. static float P042[3] = {        -266.95,        -578.17,        4424.57 };
  230. static float P043[3] = {         211.14,        -579.67,        4424.57 };
  231. static float P044[3] = {         680.57,        -370.27,        5943.46 };
  232. static float P045[3] = {         834.01,         363.09,        5943.46 };
  233. static float P046[3] = {         371.29,         614.13,        5943.46 };
  234. static float P047[3] = {        -291.43,         621.86,        5943.46 };
  235. static float P048[3] = {        -784.13,         362.60,        5943.46 };
  236. static float P049[3] = {        -743.29,        -325.82,        5943.46 };
  237. static float P050[3] = {        -383.24,        -804.77,        5943.46 };
  238. static float P051[3] = {         283.47,        -846.09,        5943.46 };
  239. static float P052[3] = {         599.09,        -332.24,        7902.59 };
  240. static float P053[3] = {         735.48,         306.26,        7911.92 };
  241. static float P054[3] = {         321.55,         558.53,        7902.59 };
  242. static float P055[3] = {        -260.54,         559.84,        7902.59 };
  243. static float P056[3] = {        -698.66,         320.83,        7902.59 };
  244. static float P057[3] = {        -643.29,        -299.16,        7902.59 };
  245. static float P058[3] = {        -341.47,        -719.30,        7902.59 };
  246. static float P059[3] = {         252.57,        -756.12,        7902.59 };
  247. static float P060[3] = {         458.39,        -265.31,        9355.44 };
  248. static float iP061[3] = {         353.63,         138.70,       10214.20 };
  249. static float P061[3] = {         353.63,         138.70,       10214.20 };
  250. static float P062[3] = {         224.04,         438.98,        9364.77 };
  251. static float P063[3] = {        -165.71,         441.27,        9355.44 };
  252. static float iP064[3] = {        -326.40,         162.04,       10209.54 };
  253. static float P064[3] = {        -326.40,         162.04,       10209.54 };
  254. static float P065[3] = {        -473.99,        -219.71,        9355.44 };
  255. static float P066[3] = {        -211.97,        -479.87,        9355.44 };
  256. static float P067[3] = {         192.86,        -504.03,        9355.44 };
  257. static float iP068[3] = {        -112.44,           9.25,         -64.42 };
  258. static float iP069[3] = {        1155.63,           0.00,        -182.46 };
  259. static float iP070[3] = {       -1143.13,           0.00,        -181.54 };
  260. static float iP071[3] = {        1424.23,           0.00,        -322.09 };
  261. static float iP072[3] = {       -1368.01,           0.00,        -310.38 };
  262. static float iP073[3] = {        1255.57,           2.31,         114.05 };
  263. static float iP074[3] = {       -1149.38,           0.00,         117.12 };
  264. static float iP075[3] = {         718.36,           0.00,         433.36 };
  265. static float iP076[3] = {        -655.90,           0.00,         433.36 };
  266. static float P068[3] = {        -112.44,           9.25,         -64.42 };
  267. static float P069[3] = {        1155.63,           0.00,        -182.46 };
  268. static float P070[3] = {       -1143.13,           0.00,        -181.54 };
  269. static float P071[3] = {        1424.23,           0.00,        -322.09 };
  270. static float P072[3] = {       -1368.01,           0.00,        -310.38 };
  271. static float P073[3] = {        1255.57,           2.31,         114.05 };
  272. static float P074[3] = {       -1149.38,           0.00,         117.12 };
  273. static float P075[3] = {         718.36,           0.00,         433.36 };
  274. static float P076[3] = {        -655.90,           0.00,         433.36 };
  275. static float P077[3] = {        1058.00,          -2.66,        7923.51 };
  276. static float P078[3] = {       -1016.51,         -15.47,        7902.87 };
  277. static float P079[3] = {       -1363.99,        -484.50,        7593.38 };
  278. static float P080[3] = {        1478.09,        -861.47,        7098.12 };
  279. static float P081[3] = {        1338.06,        -284.68,        7024.15 };
  280. static float P082[3] = {       -1545.51,        -860.64,        7106.60 };
  281. static float P083[3] = {        1063.19,         -70.46,        7466.60 };
  282. static float P084[3] = {       -1369.18,        -288.11,        7015.34 };
  283. static float P085[3] = {        1348.44,        -482.50,        7591.41 };
  284. static float P086[3] = {       -1015.45,         -96.80,        7474.86 };
  285. static float P087[3] = {         731.04,         148.38,        7682.58 };
  286. static float P088[3] = {        -697.03,         151.82,        7668.81 };
  287. static float P089[3] = {        -686.82,         157.09,        7922.29 };
  288. static float P090[3] = {         724.73,         147.75,        7931.39 };
  289. static float iP091[3] = {           0.00,         327.10,        2346.55 };
  290. static float iP092[3] = {           0.00,         552.28,        2311.31 };
  291. static float iP093[3] = {           0.00,         721.16,        2166.41 };
  292. static float iP094[3] = {           0.00,         693.42,        2388.80 };
  293. static float iP095[3] = {           0.00,         389.44,        2859.97 };
  294. static float P091[3] = {           0.00,         327.10,        2346.55 };
  295. static float P092[3] = {           0.00,         552.28,        2311.31 };
  296. static float P093[3] = {           0.00,         721.16,        2166.41 };
  297. static float P094[3] = {           0.00,         693.42,        2388.80 };
  298. static float P095[3] = {           0.00,         389.44,        2859.97 };
  299. static float iP096[3] = {         222.02,        -183.67,       10266.89 };
  300. static float iP097[3] = {        -128.90,        -182.70,       10266.89 };
  301. static float iP098[3] = {          41.04,          88.31,       10659.36 };
  302. static float iP099[3] = {         -48.73,          88.30,       10659.36 };
  303. static float P096[3] = {         222.02,        -183.67,       10266.89 };
  304. static float P097[3] = {        -128.90,        -182.70,       10266.89 };
  305. static float P098[3] = {          41.04,          88.31,       10659.36 };
  306. static float P099[3] = {         -48.73,          88.30,       10659.36 };
  307. static float P100[3] = {           0.00,         603.42,        9340.68 };
  308. static float P101[3] = {           5.70,         567.00,        7862.98 };
  309. static float P102[3] = {         521.61,         156.61,        9162.34 };
  310. static float P103[3] = {          83.68,         566.67,        7861.26 };
  311. static float P104[3] = {          -9.86,         567.62,        7858.65 };
  312. static float P105[3] = {          31.96,         565.27,        7908.46 };
  313. static float P106[3] = {          22.75,         568.13,        7782.83 };
  314. static float P107[3] = {          58.93,         568.42,        7775.94 };
  315. static float P108[3] = {          55.91,         565.59,        7905.86 };
  316. static float P109[3] = {          99.21,         566.00,        7858.65 };
  317. static float P110[3] = {        -498.83,         148.14,        9135.10 };
  318. static float P111[3] = {        -495.46,         133.24,        9158.48 };
  319. static float P112[3] = {        -490.82,         146.23,        9182.76 };
  320. static float P113[3] = {        -489.55,         174.11,        9183.66 };
  321. static float P114[3] = {        -492.92,         189.00,        9160.28 };
  322. static float P115[3] = {        -497.56,         176.02,        9136.00 };
  323. static float P116[3] = {         526.54,         169.68,        9137.70 };
  324. static float P117[3] = {         523.49,         184.85,        9161.42 };
  325. static float P118[3] = {         518.56,         171.78,        9186.06 };
  326. static float P119[3] = {         516.68,         143.53,        9186.98 };
  327. static float P120[3] = {         519.73,         128.36,        9163.26 };
  328. static float P121[3] = {         524.66,         141.43,        9138.62 };
  329.  
  330. whale001()
  331. {
  332.     bgnpolygon();
  333.     n3f( N001);
  334.     v3f( P001);
  335.     n3f( N068);
  336.     v3f( P068);
  337.     n3f( N010);
  338.     v3f( P010);
  339.     endpolygon();
  340.     bgnpolygon();
  341.     n3f( N068);
  342.     v3f( P068);
  343.     n3f( N076);
  344.     v3f( P076);
  345.     n3f( N010);
  346.     v3f( P010);
  347.     endpolygon();
  348.     bgnpolygon();
  349.     n3f( N068);
  350.     v3f( P068);
  351.     n3f( N070);
  352.     v3f( P070);
  353.     n3f( N076);
  354.     v3f( P076);
  355.     endpolygon();
  356.     bgnpolygon();
  357.     n3f( N076);
  358.     v3f( P076);
  359.     n3f( N070);
  360.     v3f( P070);
  361.     n3f( N074);
  362.     v3f( P074);
  363.     endpolygon();
  364.     bgnpolygon();
  365.     n3f( N070);
  366.     v3f( P070);
  367.     n3f( N072);
  368.     v3f( P072);
  369.     n3f( N074);
  370.     v3f( P074);
  371.     endpolygon();
  372.     bgnpolygon();
  373.     n3f( N072);
  374.     v3f( P072);
  375.     n3f( N070);
  376.     v3f( P070);
  377.     n3f( N074);
  378.     v3f( P074);
  379.     endpolygon();
  380.     bgnpolygon();
  381.     n3f( N074);
  382.     v3f( P074);
  383.     n3f( N070);
  384.     v3f( P070);
  385.     n3f( N076);
  386.     v3f( P076);
  387.     endpolygon();
  388.     bgnpolygon();
  389.     n3f( N070);
  390.     v3f( P070);
  391.     n3f( N068);
  392.     v3f( P068);
  393.     n3f( N076);
  394.     v3f( P076);
  395.     endpolygon();
  396.     bgnpolygon();
  397.     n3f( N076);
  398.     v3f( P076);
  399.     n3f( N068);
  400.     v3f( P068);
  401.     n3f( N010);
  402.     v3f( P010);
  403.     endpolygon();
  404.     bgnpolygon();
  405.     n3f( N068);
  406.     v3f( P068);
  407.     n3f( N001);
  408.     v3f( P001);
  409.     n3f( N010);
  410.     v3f( P010);
  411.     endpolygon();
  412. }
  413.  
  414. whale002()
  415. {
  416.     bgnpolygon();
  417.     n3f( N011);
  418.     v3f( P011);
  419.     n3f( N001);
  420.     v3f( P001);
  421.     n3f( N009);
  422.     v3f( P009);
  423.     endpolygon();
  424.     bgnpolygon();
  425.     n3f( N075);
  426.     v3f( P075);
  427.     n3f( N011);
  428.     v3f( P011);
  429.     n3f( N009);
  430.     v3f( P009);
  431.     endpolygon();
  432.     bgnpolygon();
  433.     n3f( N069);
  434.     v3f( P069);
  435.     n3f( N011);
  436.     v3f( P011);
  437.     n3f( N075);
  438.     v3f( P075);
  439.     endpolygon();
  440.     bgnpolygon();
  441.     n3f( N069);
  442.     v3f( P069);
  443.     n3f( N075);
  444.     v3f( P075);
  445.     n3f( N073);
  446.     v3f( P073);
  447.     endpolygon();
  448.     bgnpolygon();
  449.     n3f( N071);
  450.     v3f( P071);
  451.     n3f( N069);
  452.     v3f( P069);
  453.     n3f( N073);
  454.     v3f( P073);
  455.     endpolygon();
  456.     bgnpolygon();
  457.     n3f( N001);
  458.     v3f( P001);
  459.     n3f( N011);
  460.     v3f( P011);
  461.     n3f( N009);
  462.     v3f( P009);
  463.     endpolygon();
  464.     bgnpolygon();
  465.     n3f( N009);
  466.     v3f( P009);
  467.     n3f( N011);
  468.     v3f( P011);
  469.     n3f( N075);
  470.     v3f( P075);
  471.     endpolygon();
  472.     bgnpolygon();
  473.     n3f( N011);
  474.     v3f( P011);
  475.     n3f( N069);
  476.     v3f( P069);
  477.     n3f( N075);
  478.     v3f( P075);
  479.     endpolygon();
  480.     bgnpolygon();
  481.     n3f( N069);
  482.     v3f( P069);
  483.     n3f( N073);
  484.     v3f( P073);
  485.     n3f( N075);
  486.     v3f( P075);
  487.     endpolygon();
  488.     bgnpolygon();
  489.     n3f( N069);
  490.     v3f( P069);
  491.     n3f( N071);
  492.     v3f( P071);
  493.     n3f( N073);
  494.     v3f( P073);
  495.     endpolygon();
  496. }
  497.  
  498. whale003()
  499. {
  500.     bgnpolygon();
  501.     n3f( N018);
  502.     v3f( P018);
  503.     n3f( N001);
  504.     v3f( P001);
  505.     n3f( N019);
  506.     v3f( P019);
  507.     endpolygon();
  508.     bgnpolygon();
  509.     n3f( N019);
  510.     v3f( P019);
  511.     n3f( N001);
  512.     v3f( P001);
  513.     n3f( N012);
  514.     v3f( P012);
  515.     endpolygon();
  516.     bgnpolygon();
  517.     n3f( N017);
  518.     v3f( P017);
  519.     n3f( N001);
  520.     v3f( P001);
  521.     n3f( N018);
  522.     v3f( P018);
  523.     endpolygon();
  524.     bgnpolygon();
  525.     n3f( N001);
  526.     v3f( P001);
  527.     n3f( N017);
  528.     v3f( P017);
  529.     n3f( N016);
  530.     v3f( P016);
  531.     endpolygon();
  532.     bgnpolygon();
  533.     n3f( N001);
  534.     v3f( P001);
  535.     n3f( N013);
  536.     v3f( P013);
  537.     n3f( N012);
  538.     v3f( P012);
  539.     endpolygon();
  540.     bgnpolygon();
  541.     n3f( N001);
  542.     v3f( P001);
  543.     n3f( N016);
  544.     v3f( P016);
  545.     n3f( N015);
  546.     v3f( P015);
  547.     endpolygon();
  548.     bgnpolygon();
  549.     n3f( N001);
  550.     v3f( P001);
  551.     n3f( N014);
  552.     v3f( P014);
  553.     n3f( N013);
  554.     v3f( P013);
  555.     endpolygon();
  556.     bgnpolygon();
  557.     n3f( N001);
  558.     v3f( P001);
  559.     n3f( N015);
  560.     v3f( P015);
  561.     n3f( N014);
  562.     v3f( P014);
  563.     endpolygon();
  564. }
  565.  
  566. whale004()
  567. {
  568.     bgnpolygon();
  569.     n3f( N014);
  570.     v3f( P014);
  571.     n3f( N015);
  572.     v3f( P015);
  573.     n3f( N023);
  574.     v3f( P023);
  575.     n3f( N022);
  576.     v3f( P022);
  577.     endpolygon();
  578.     bgnpolygon();
  579.     n3f( N015);
  580.     v3f( P015);
  581.     n3f( N016);
  582.     v3f( P016);
  583.     n3f( N024);
  584.     v3f( P024);
  585.     n3f( N023);
  586.     v3f( P023);
  587.     endpolygon();
  588.     bgnpolygon();
  589.     n3f( N016);
  590.     v3f( P016);
  591.     n3f( N017);
  592.     v3f( P017);
  593.     n3f( N025);
  594.     v3f( P025);
  595.     n3f( N024);
  596.     v3f( P024);
  597.     endpolygon();
  598.     bgnpolygon();
  599.     n3f( N017);
  600.     v3f( P017);
  601.     n3f( N018);
  602.     v3f( P018);
  603.     n3f( N026);
  604.     v3f( P026);
  605.     n3f( N025);
  606.     v3f( P025);
  607.     endpolygon();
  608.     bgnpolygon();
  609.     n3f( N013);
  610.     v3f( P013);
  611.     n3f( N014);
  612.     v3f( P014);
  613.     n3f( N022);
  614.     v3f( P022);
  615.     n3f( N021);
  616.     v3f( P021);
  617.     endpolygon();
  618.     bgnpolygon();
  619.     n3f( N012);
  620.     v3f( P012);
  621.     n3f( N013);
  622.     v3f( P013);
  623.     n3f( N021);
  624.     v3f( P021);
  625.     n3f( N020);
  626.     v3f( P020);
  627.     endpolygon();
  628.     bgnpolygon();
  629.     n3f( N018);
  630.     v3f( P018);
  631.     n3f( N019);
  632.     v3f( P019);
  633.     n3f( N027);
  634.     v3f( P027);
  635.     n3f( N026);
  636.     v3f( P026);
  637.     endpolygon();
  638.     bgnpolygon();
  639.     n3f( N019);
  640.     v3f( P019);
  641.     n3f( N012);
  642.     v3f( P012);
  643.     n3f( N020);
  644.     v3f( P020);
  645.     n3f( N027);
  646.     v3f( P027);
  647.     endpolygon();
  648. }
  649.  
  650. whale005()
  651. {
  652.     bgnpolygon();
  653.     n3f( N022);
  654.     v3f( P022);
  655.     n3f( N023);
  656.     v3f( P023);
  657.     n3f( N031);
  658.     v3f( P031);
  659.     n3f( N030);
  660.     v3f( P030);
  661.     endpolygon();
  662.     bgnpolygon();
  663.     n3f( N021);
  664.     v3f( P021);
  665.     n3f( N022);
  666.     v3f( P022);
  667.     n3f( N030);
  668.     v3f( P030);
  669.     endpolygon();
  670.     bgnpolygon();
  671.     n3f( N021);
  672.     v3f( P021);
  673.     n3f( N030);
  674.     v3f( P030);
  675.     n3f( N029);
  676.     v3f( P029);
  677.     endpolygon();
  678.     bgnpolygon();
  679.     n3f( N023);
  680.     v3f( P023);
  681.     n3f( N024);
  682.     v3f( P024);
  683.     n3f( N031);
  684.     v3f( P031);
  685.     endpolygon();
  686.     bgnpolygon();
  687.     n3f( N024);
  688.     v3f( P024);
  689.     n3f( N032);
  690.     v3f( P032);
  691.     n3f( N031);
  692.     v3f( P031);
  693.     endpolygon();
  694.     bgnpolygon();
  695.     n3f( N024);
  696.     v3f( P024);
  697.     n3f( N025);
  698.     v3f( P025);
  699.     n3f( N032);
  700.     v3f( P032);
  701.     endpolygon();
  702.     bgnpolygon();
  703.     n3f( N025);
  704.     v3f( P025);
  705.     n3f( N033);
  706.     v3f( P033);
  707.     n3f( N032);
  708.     v3f( P032);
  709.     endpolygon();
  710.     bgnpolygon();
  711.     n3f( N020);
  712.     v3f( P020);
  713.     n3f( N021);
  714.     v3f( P021);
  715.     n3f( N029);
  716.     v3f( P029);
  717.     endpolygon();
  718.     bgnpolygon();
  719.     n3f( N020);
  720.     v3f( P020);
  721.     n3f( N029);
  722.     v3f( P029);
  723.     n3f( N028);
  724.     v3f( P028);
  725.     endpolygon();
  726.     bgnpolygon();
  727.     n3f( N027);
  728.     v3f( P027);
  729.     n3f( N020);
  730.     v3f( P020);
  731.     n3f( N028);
  732.     v3f( P028);
  733.     endpolygon();
  734.     bgnpolygon();
  735.     n3f( N027);
  736.     v3f( P027);
  737.     n3f( N028);
  738.     v3f( P028);
  739.     n3f( N035);
  740.     v3f( P035);
  741.     endpolygon();
  742.     bgnpolygon();
  743.     n3f( N025);
  744.     v3f( P025);
  745.     n3f( N026);
  746.     v3f( P026);
  747.     n3f( N033);
  748.     v3f( P033);
  749.     endpolygon();
  750.     bgnpolygon();
  751.     n3f( N033);
  752.     v3f( P033);
  753.     n3f( N026);
  754.     v3f( P026);
  755.     n3f( N034);
  756.     v3f( P034);
  757.     endpolygon();
  758.     bgnpolygon();
  759.     n3f( N026);
  760.     v3f( P026);
  761.     n3f( N027);
  762.     v3f( P027);
  763.     n3f( N035);
  764.     v3f( P035);
  765.     n3f( N034);
  766.     v3f( P034);
  767.     endpolygon();
  768. }
  769.  
  770. whale006()
  771. {
  772.     bgnpolygon();
  773.     n3f( N092);
  774.     v3f( P092);
  775.     n3f( N093);
  776.     v3f( P093);
  777.     n3f( N094);
  778.     v3f( P094);
  779.     endpolygon();
  780.     bgnpolygon();
  781.     n3f( N093);
  782.     v3f( P093);
  783.     n3f( N092);
  784.     v3f( P092);
  785.     n3f( N094);
  786.     v3f( P094);
  787.     endpolygon();
  788.     bgnpolygon();
  789.     n3f( N092);
  790.     v3f( P092);
  791.     n3f( N091);
  792.     v3f( P091);
  793.     n3f( N095);
  794.     v3f( P095);
  795.     n3f( N094);
  796.     v3f( P094);
  797.     endpolygon();
  798.     bgnpolygon();
  799.     n3f( N091);
  800.     v3f( P091);
  801.     n3f( N092);
  802.     v3f( P092);
  803.     n3f( N094);
  804.     v3f( P094);
  805.     n3f( N095);
  806.     v3f( P095);
  807.     endpolygon();
  808. }
  809.  
  810. whale007()
  811. {
  812.     bgnpolygon();
  813.     n3f( N030);
  814.     v3f( P030);
  815.     n3f( N031);
  816.     v3f( P031);
  817.     n3f( N039);
  818.     v3f( P039);
  819.     n3f( N038);
  820.     v3f( P038);
  821.     endpolygon();
  822.     bgnpolygon();
  823.     n3f( N029);
  824.     v3f( P029);
  825.     n3f( N030);
  826.     v3f( P030);
  827.     n3f( N038);
  828.     v3f( P038);
  829.     endpolygon();
  830.     bgnpolygon();
  831.     n3f( N029);
  832.     v3f( P029);
  833.     n3f( N038);
  834.     v3f( P038);
  835.     n3f( N037);
  836.     v3f( P037);
  837.     endpolygon();
  838.     bgnpolygon();
  839.     n3f( N028);
  840.     v3f( P028);
  841.     n3f( N029);
  842.     v3f( P029);
  843.     n3f( N037);
  844.     v3f( P037);
  845.     endpolygon();
  846.     bgnpolygon();
  847.     n3f( N028);
  848.     v3f( P028);
  849.     n3f( N037);
  850.     v3f( P037);
  851.     n3f( N036);
  852.     v3f( P036);
  853.     endpolygon();
  854.     bgnpolygon();
  855.     n3f( N035);
  856.     v3f( P035);
  857.     n3f( N028);
  858.     v3f( P028);
  859.     n3f( N036);
  860.     v3f( P036);
  861.     endpolygon();
  862.     bgnpolygon();
  863.     n3f( N035);
  864.     v3f( P035);
  865.     n3f( N036);
  866.     v3f( P036);
  867.     n3f( N043);
  868.     v3f( P043);
  869.     endpolygon();
  870.     bgnpolygon();
  871.     n3f( N034);
  872.     v3f( P034);
  873.     n3f( N035);
  874.     v3f( P035);
  875.     n3f( N043);
  876.     v3f( P043);
  877.     n3f( N042);
  878.     v3f( P042);
  879.     endpolygon();
  880.     bgnpolygon();
  881.     n3f( N033);
  882.     v3f( P033);
  883.     n3f( N034);
  884.     v3f( P034);
  885.     n3f( N042);
  886.     v3f( P042);
  887.     endpolygon();
  888.     bgnpolygon();
  889.     n3f( N033);
  890.     v3f( P033);
  891.     n3f( N042);
  892.     v3f( P042);
  893.     n3f( N041);
  894.     v3f( P041);
  895.     endpolygon();
  896.     bgnpolygon();
  897.     n3f( N031);
  898.     v3f( P031);
  899.     n3f( N032);
  900.     v3f( P032);
  901.     n3f( N039);
  902.     v3f( P039);
  903.     endpolygon();
  904.     bgnpolygon();
  905.     n3f( N039);
  906.     v3f( P039);
  907.     n3f( N032);
  908.     v3f( P032);
  909.     n3f( N040);
  910.     v3f( P040);
  911.     endpolygon();
  912.     bgnpolygon();
  913.     n3f( N032);
  914.     v3f( P032);
  915.     n3f( N033);
  916.     v3f( P033);
  917.     n3f( N040);
  918.     v3f( P040);
  919.     endpolygon();
  920.     bgnpolygon();
  921.     n3f( N040);
  922.     v3f( P040);
  923.     n3f( N033);
  924.     v3f( P033);
  925.     n3f( N041);
  926.     v3f( P041);
  927.     endpolygon();
  928. }
  929.  
  930. whale008()
  931. {
  932.     bgnpolygon();
  933.     n3f( N042);
  934.     v3f( P042);
  935.     n3f( N043);
  936.     v3f( P043);
  937.     n3f( N051);
  938.     v3f( P051);
  939.     n3f( N050);
  940.     v3f( P050);
  941.     endpolygon();
  942.     bgnpolygon();
  943.     n3f( N043);
  944.     v3f( P043);
  945.     n3f( N036);
  946.     v3f( P036);
  947.     n3f( N051);
  948.     v3f( P051);
  949.     endpolygon();
  950.     bgnpolygon();
  951.     n3f( N051);
  952.     v3f( P051);
  953.     n3f( N036);
  954.     v3f( P036);
  955.     n3f( N044);
  956.     v3f( P044);
  957.     endpolygon();
  958.     bgnpolygon();
  959.     n3f( N041);
  960.     v3f( P041);
  961.     n3f( N042);
  962.     v3f( P042);
  963.     n3f( N050);
  964.     v3f( P050);
  965.     endpolygon();
  966.     bgnpolygon();
  967.     n3f( N041);
  968.     v3f( P041);
  969.     n3f( N050);
  970.     v3f( P050);
  971.     n3f( N049);
  972.     v3f( P049);
  973.     endpolygon();
  974.     bgnpolygon();
  975.     n3f( N036);
  976.     v3f( P036);
  977.     n3f( N037);
  978.     v3f( P037);
  979.     n3f( N044);
  980.     v3f( P044);
  981.     endpolygon();
  982.     bgnpolygon();
  983.     n3f( N044);
  984.     v3f( P044);
  985.     n3f( N037);
  986.     v3f( P037);
  987.     n3f( N045);
  988.     v3f( P045);
  989.     endpolygon();
  990.     bgnpolygon();
  991.     n3f( N040);
  992.     v3f( P040);
  993.     n3f( N041);
  994.     v3f( P041);
  995.     n3f( N049);
  996.     v3f( P049);
  997.     endpolygon();
  998.     bgnpolygon();
  999.     n3f( N040);
  1000.     v3f( P040);
  1001.     n3f( N049);
  1002.     v3f( P049);
  1003.     n3f( N048);
  1004.     v3f( P048);
  1005.     endpolygon();
  1006.     bgnpolygon();
  1007.     n3f( N039);
  1008.     v3f( P039);
  1009.     n3f( N040);
  1010.     v3f( P040);
  1011.     n3f( N048);
  1012.     v3f( P048);
  1013.     endpolygon();
  1014.     bgnpolygon();
  1015.     n3f( N039);
  1016.     v3f( P039);
  1017.     n3f( N048);
  1018.     v3f( P048);
  1019.     n3f( N047);
  1020.     v3f( P047);
  1021.     endpolygon();
  1022.     bgnpolygon();
  1023.     n3f( N037);
  1024.     v3f( P037);
  1025.     n3f( N038);
  1026.     v3f( P038);
  1027.     n3f( N045);
  1028.     v3f( P045);
  1029.     endpolygon();
  1030.     bgnpolygon();
  1031.     n3f( N038);
  1032.     v3f( P038);
  1033.     n3f( N046);
  1034.     v3f( P046);
  1035.     n3f( N045);
  1036.     v3f( P045);
  1037.     endpolygon();
  1038.     bgnpolygon();
  1039.     n3f( N038);
  1040.     v3f( P038);
  1041.     n3f( N039);
  1042.     v3f( P039);
  1043.     n3f( N047);
  1044.     v3f( P047);
  1045.     n3f( N046);
  1046.     v3f( P046);
  1047.     endpolygon();
  1048. }
  1049.  
  1050. whale009()
  1051. {
  1052.     bgnpolygon();
  1053.     n3f( N050);
  1054.     v3f( P050);
  1055.     n3f( N051);
  1056.     v3f( P051);
  1057.     n3f( N059);
  1058.     v3f( P059);
  1059.     n3f( N058);
  1060.     v3f( P058);
  1061.     endpolygon();
  1062.     bgnpolygon();
  1063.     n3f( N051);
  1064.     v3f( P051);
  1065.     n3f( N044);
  1066.     v3f( P044);
  1067.     n3f( N059);
  1068.     v3f( P059);
  1069.     endpolygon();
  1070.     bgnpolygon();
  1071.     n3f( N059);
  1072.     v3f( P059);
  1073.     n3f( N044);
  1074.     v3f( P044);
  1075.     n3f( N052);
  1076.     v3f( P052);
  1077.     endpolygon();
  1078.     bgnpolygon();
  1079.     n3f( N044);
  1080.     v3f( P044);
  1081.     n3f( N045);
  1082.     v3f( P045);
  1083.     n3f( N053);
  1084.     v3f( P053);
  1085.     endpolygon();
  1086.     bgnpolygon();
  1087.     n3f( N044);
  1088.     v3f( P044);
  1089.     n3f( N053);
  1090.     v3f( P053);
  1091.     n3f( N052);
  1092.     v3f( P052);
  1093.     endpolygon();
  1094.     bgnpolygon();
  1095.     n3f( N049);
  1096.     v3f( P049);
  1097.     n3f( N050);
  1098.     v3f( P050);
  1099.     n3f( N058);
  1100.     v3f( P058);
  1101.     endpolygon();
  1102.     bgnpolygon();
  1103.     n3f( N049);
  1104.     v3f( P049);
  1105.     n3f( N058);
  1106.     v3f( P058);
  1107.     n3f( N057);
  1108.     v3f( P057);
  1109.     endpolygon();
  1110.     bgnpolygon();
  1111.     n3f( N048);
  1112.     v3f( P048);
  1113.     n3f( N049);
  1114.     v3f( P049);
  1115.     n3f( N057);
  1116.     v3f( P057);
  1117.     endpolygon();
  1118.     bgnpolygon();
  1119.     n3f( N048);
  1120.     v3f( P048);
  1121.     n3f( N057);
  1122.     v3f( P057);
  1123.     n3f( N056);
  1124.     v3f( P056);
  1125.     endpolygon();
  1126.     bgnpolygon();
  1127.     n3f( N047);
  1128.     v3f( P047);
  1129.     n3f( N048);
  1130.     v3f( P048);
  1131.     n3f( N056);
  1132.     v3f( P056);
  1133.     endpolygon();
  1134.     bgnpolygon();
  1135.     n3f( N047);
  1136.     v3f( P047);
  1137.     n3f( N056);
  1138.     v3f( P056);
  1139.     n3f( N055);
  1140.     v3f( P055);
  1141.     endpolygon();
  1142.     bgnpolygon();
  1143.     n3f( N045);
  1144.     v3f( P045);
  1145.     n3f( N046);
  1146.     v3f( P046);
  1147.     n3f( N053);
  1148.     v3f( P053);
  1149.     endpolygon();
  1150.     bgnpolygon();
  1151.     n3f( N046);
  1152.     v3f( P046);
  1153.     n3f( N054);
  1154.     v3f( P054);
  1155.     n3f( N053);
  1156.     v3f( P053);
  1157.     endpolygon();
  1158.     bgnpolygon();
  1159.     n3f( N046);
  1160.     v3f( P046);
  1161.     n3f( N047);
  1162.     v3f( P047);
  1163.     n3f( N055);
  1164.     v3f( P055);
  1165.     n3f( N054);
  1166.     v3f( P054);
  1167.     endpolygon();
  1168. }
  1169.  
  1170. whale010()
  1171. {
  1172.     bgnpolygon();
  1173.     n3f( N080);
  1174.     v3f( P080);
  1175.     n3f( N081);
  1176.     v3f( P081);
  1177.     n3f( N085);
  1178.     v3f( P085);
  1179.     endpolygon();
  1180.     bgnpolygon();
  1181.     n3f( N081);
  1182.     v3f( P081);
  1183.     n3f( N083);
  1184.     v3f( P083);
  1185.     n3f( N085);
  1186.     v3f( P085);
  1187.     endpolygon();
  1188.     bgnpolygon();
  1189.     n3f( N085);
  1190.     v3f( P085);
  1191.     n3f( N083);
  1192.     v3f( P083);
  1193.     n3f( N077);
  1194.     v3f( P077);
  1195.     endpolygon();
  1196.     bgnpolygon();
  1197.     n3f( N083);
  1198.     v3f( P083);
  1199.     n3f( N087);
  1200.     v3f( P087);
  1201.     n3f( N077);
  1202.     v3f( P077);
  1203.     endpolygon();
  1204.     bgnpolygon();
  1205.     n3f( N077);
  1206.     v3f( P077);
  1207.     n3f( N087);
  1208.     v3f( P087);
  1209.     n3f( N090);
  1210.     v3f( P090);
  1211.     endpolygon();
  1212.     bgnpolygon();
  1213.     n3f( N081);
  1214.     v3f( P081);
  1215.     n3f( N080);
  1216.     v3f( P080);
  1217.     n3f( N085);
  1218.     v3f( P085);
  1219.     endpolygon();
  1220.     bgnpolygon();
  1221.     n3f( N083);
  1222.     v3f( P083);
  1223.     n3f( N081);
  1224.     v3f( P081);
  1225.     n3f( N085);
  1226.     v3f( P085);
  1227.     endpolygon();
  1228.     bgnpolygon();
  1229.     n3f( N083);
  1230.     v3f( P083);
  1231.     n3f( N085);
  1232.     v3f( P085);
  1233.     n3f( N077);
  1234.     v3f( P077);
  1235.     endpolygon();
  1236.     bgnpolygon();
  1237.     n3f( N087);
  1238.     v3f( P087);
  1239.     n3f( N083);
  1240.     v3f( P083);
  1241.     n3f( N077);
  1242.     v3f( P077);
  1243.     endpolygon();
  1244.     bgnpolygon();
  1245.     n3f( N087);
  1246.     v3f( P087);
  1247.     n3f( N077);
  1248.     v3f( P077);
  1249.     n3f( N090);
  1250.     v3f( P090);
  1251.     endpolygon();
  1252. }
  1253.  
  1254. whale011()
  1255. {
  1256.     bgnpolygon();
  1257.     n3f( N082);
  1258.     v3f( P082);
  1259.     n3f( N084);
  1260.     v3f( P084);
  1261.     n3f( N079);
  1262.     v3f( P079);
  1263.     endpolygon();
  1264.     bgnpolygon();
  1265.     n3f( N084);
  1266.     v3f( P084);
  1267.     n3f( N086);
  1268.     v3f( P086);
  1269.     n3f( N079);
  1270.     v3f( P079);
  1271.     endpolygon();
  1272.     bgnpolygon();
  1273.     n3f( N079);
  1274.     v3f( P079);
  1275.     n3f( N086);
  1276.     v3f( P086);
  1277.     n3f( N078);
  1278.     v3f( P078);
  1279.     endpolygon();
  1280.     bgnpolygon();
  1281.     n3f( N086);
  1282.     v3f( P086);
  1283.     n3f( N088);
  1284.     v3f( P088);
  1285.     n3f( N078);
  1286.     v3f( P078);
  1287.     endpolygon();
  1288.     bgnpolygon();
  1289.     n3f( N078);
  1290.     v3f( P078);
  1291.     n3f( N088);
  1292.     v3f( P088);
  1293.     n3f( N089);
  1294.     v3f( P089);
  1295.     endpolygon();
  1296.     bgnpolygon();
  1297.     n3f( N088);
  1298.     v3f( P088);
  1299.     n3f( N086);
  1300.     v3f( P086);
  1301.     n3f( N089);
  1302.     v3f( P089);
  1303.     endpolygon();
  1304.     bgnpolygon();
  1305.     n3f( N089);
  1306.     v3f( P089);
  1307.     n3f( N086);
  1308.     v3f( P086);
  1309.     n3f( N078);
  1310.     v3f( P078);
  1311.     endpolygon();
  1312.     bgnpolygon();
  1313.     n3f( N086);
  1314.     v3f( P086);
  1315.     n3f( N084);
  1316.     v3f( P084);
  1317.     n3f( N078);
  1318.     v3f( P078);
  1319.     endpolygon();
  1320.     bgnpolygon();
  1321.     n3f( N078);
  1322.     v3f( P078);
  1323.     n3f( N084);
  1324.     v3f( P084);
  1325.     n3f( N079);
  1326.     v3f( P079);
  1327.     endpolygon();
  1328.     bgnpolygon();
  1329.     n3f( N084);
  1330.     v3f( P084);
  1331.     n3f( N082);
  1332.     v3f( P082);
  1333.     n3f( N079);
  1334.     v3f( P079);
  1335.     endpolygon();
  1336. }
  1337.  
  1338. whale012()
  1339. {
  1340.     bgnpolygon();
  1341.     n3f( N058);
  1342.     v3f( P058);
  1343.     n3f( N059);
  1344.     v3f( P059);
  1345.     n3f( N067);
  1346.     v3f( P067);
  1347.     n3f( N066);
  1348.     v3f( P066);
  1349.     endpolygon();
  1350.     bgnpolygon();
  1351.     n3f( N059);
  1352.     v3f( P059);
  1353.     n3f( N052);
  1354.     v3f( P052);
  1355.     n3f( N060);
  1356.     v3f( P060);
  1357.     endpolygon();
  1358.     bgnpolygon();
  1359.     n3f( N059);
  1360.     v3f( P059);
  1361.     n3f( N060);
  1362.     v3f( P060);
  1363.     n3f( N067);
  1364.     v3f( P067);
  1365.     endpolygon();
  1366.     bgnpolygon();
  1367.     n3f( N058);
  1368.     v3f( P058);
  1369.     n3f( N066);
  1370.     v3f( P066);
  1371.     n3f( N065);
  1372.     v3f( P065);
  1373.     endpolygon();
  1374.     bgnpolygon();
  1375.     n3f( N058);
  1376.     v3f( P058);
  1377.     n3f( N065);
  1378.     v3f( P065);
  1379.     n3f( N057);
  1380.     v3f( P057);
  1381.     endpolygon();
  1382.     bgnpolygon();
  1383.     n3f( N056);
  1384.     v3f( P056);
  1385.     n3f( N057);
  1386.     v3f( P057);
  1387.     n3f( N065);
  1388.     v3f( P065);
  1389.     endpolygon();
  1390.     bgnpolygon();
  1391.     n3f( N056);
  1392.     v3f( P056);
  1393.     n3f( N065);
  1394.     v3f( P065);
  1395.     n3f( N006);
  1396.     v3f( P006);
  1397.     endpolygon();
  1398.     bgnpolygon();
  1399.     n3f( N056);
  1400.     v3f( P056);
  1401.     n3f( N006);
  1402.     v3f( P006);
  1403.     n3f( N063);
  1404.     v3f( P063);
  1405.     endpolygon();
  1406.     bgnpolygon();
  1407.     n3f( N056);
  1408.     v3f( P056);
  1409.     n3f( N063);
  1410.     v3f( P063);
  1411.     n3f( N055);
  1412.     v3f( P055);
  1413.     endpolygon();
  1414.     bgnpolygon();
  1415.     n3f( N054);
  1416.     v3f( P054);
  1417.     n3f( N062);
  1418.     v3f( P062);
  1419.     n3f( N005);
  1420.     v3f( P005);
  1421.     endpolygon();
  1422.     bgnpolygon();
  1423.     n3f( N054);
  1424.     v3f( P054);
  1425.     n3f( N005);
  1426.     v3f( P005);
  1427.     n3f( N053);
  1428.     v3f( P053);
  1429.     endpolygon();
  1430.     bgnpolygon();
  1431.     n3f( N053);
  1432.     v3f( P053);
  1433.     n3f( N005);
  1434.     v3f( P005);
  1435.     n3f( N060);
  1436.     v3f( P060);
  1437.     endpolygon();
  1438.     bgnpolygon();
  1439.     n3f( N053);
  1440.     v3f( P053);
  1441.     n3f( N060);
  1442.     v3f( P060);
  1443.     n3f( N052);
  1444.     v3f( P052);
  1445.     endpolygon();
  1446. }
  1447.  
  1448. whale013()
  1449. {
  1450.     bgnpolygon();
  1451.     n3f( N066);
  1452.     v3f( P066);
  1453.     n3f( N067);
  1454.     v3f( P067);
  1455.     n3f( N096);
  1456.     v3f( P096);
  1457.     n3f( N097);
  1458.     v3f( P097);
  1459.     endpolygon();
  1460.     bgnpolygon();
  1461.     n3f( N097);
  1462.     v3f( P097);
  1463.     n3f( N096);
  1464.     v3f( P096);
  1465.     n3f( N098);
  1466.     v3f( P098);
  1467.     n3f( N099);
  1468.     v3f( P099);
  1469.     endpolygon();
  1470.     bgnpolygon();
  1471.     n3f( N065);
  1472.     v3f( P065);
  1473.     n3f( N066);
  1474.     v3f( P066);
  1475.     n3f( N097);
  1476.     v3f( P097);
  1477.     endpolygon();
  1478.     bgnpolygon();
  1479.     n3f( N067);
  1480.     v3f( P067);
  1481.     n3f( N060);
  1482.     v3f( P060);
  1483.     n3f( N096);
  1484.     v3f( P096);
  1485.     endpolygon();
  1486.     bgnpolygon();
  1487.     n3f( N060);
  1488.     v3f( P060);
  1489.     n3f( N005);
  1490.     v3f( P005);
  1491.     n3f( N096);
  1492.     v3f( P096);
  1493.     endpolygon();
  1494.     bgnpolygon();
  1495.     n3f( N096);
  1496.     v3f( P096);
  1497.     n3f( N005);
  1498.     v3f( P005);
  1499.     n3f( N098);
  1500.     v3f( P098);
  1501.     endpolygon();
  1502.     bgnpolygon();
  1503.     n3f( N006);
  1504.     v3f( P006);
  1505.     n3f( N065);
  1506.     v3f( P065);
  1507.     n3f( N097);
  1508.     v3f( P097);
  1509.     endpolygon();
  1510.     bgnpolygon();
  1511.     n3f( N006);
  1512.     v3f( P006);
  1513.     n3f( N097);
  1514.     v3f( P097);
  1515.     n3f( N099);
  1516.     v3f( P099);
  1517.     endpolygon();
  1518.     lmbind(LMODEL,0);
  1519.     cpack(0xFF1E1E1E);
  1520.     bgnpolygon();
  1521.     v3f( P005);
  1522.     v3f( P006);
  1523.     v3f( P099);
  1524.     v3f( P098);
  1525.     endpolygon();
  1526.     lmbind(LMODEL,1);
  1527. }
  1528.  
  1529. whale014()
  1530. {
  1531.     bgnpolygon();
  1532.     n3f( N062);
  1533.     v3f( P062);
  1534.     n3f( N004);
  1535.     v3f( P004);
  1536.     n3f( N005);
  1537.     v3f( P005);
  1538.     endpolygon();
  1539.     lmbind(LMODEL,0);
  1540.     cpack(0xFF1E1E1E);
  1541.     bgnpolygon();
  1542.     v3f( P006);
  1543.     v3f( P005);
  1544.     v3f( P004);
  1545.     v3f( P008);
  1546.     endpolygon();
  1547.     lmbind(LMODEL,1);
  1548.     bgnpolygon();
  1549.     n3f( N063);
  1550.     v3f( P063);
  1551.     n3f( N006);
  1552.     v3f( P006);
  1553.     n3f( N002);
  1554.     v3f( P002);
  1555.     endpolygon();
  1556.     bgnpolygon();
  1557.     n3f( N002);
  1558.     v3f( P002);
  1559.     n3f( N006);
  1560.     v3f( P006);
  1561.     n3f( N008);
  1562.     v3f( P008);
  1563.     endpolygon();
  1564.     bgnpolygon();
  1565.     n3f( N002);
  1566.     v3f( P002);
  1567.     n3f( N008);
  1568.     v3f( P008);
  1569.     n3f( N004);
  1570.     v3f( P004);
  1571.     endpolygon();
  1572.     bgnpolygon();
  1573.     n3f( N062);
  1574.     v3f( P062);
  1575.     n3f( N002);
  1576.     v3f( P002);
  1577.     n3f( N004);
  1578.     v3f( P004);
  1579.     endpolygon();
  1580. }
  1581.  
  1582. whale015()
  1583. {
  1584.     bgnpolygon();
  1585.     n3f( N055);
  1586.     v3f( P055);
  1587.     n3f( N003);
  1588.     v3f( P003);
  1589.     n3f( N054);
  1590.     v3f( P054);
  1591.     endpolygon();
  1592.     bgnpolygon();
  1593.     n3f( N003);
  1594.     v3f( P003);
  1595.     n3f( N055);
  1596.     v3f( P055);
  1597.     n3f( N063);
  1598.     v3f( P063);
  1599.     endpolygon();
  1600.     bgnpolygon();
  1601.     n3f( N003);
  1602.     v3f( P003);
  1603.     n3f( N063);
  1604.     v3f( P063);
  1605.     n3f( N100);
  1606.     v3f( P100);
  1607.     endpolygon();
  1608.     bgnpolygon();
  1609.     n3f( N003);
  1610.     v3f( P003);
  1611.     n3f( N100);
  1612.     v3f( P100);
  1613.     n3f( N054);
  1614.     v3f( P054);
  1615.     endpolygon();
  1616.     bgnpolygon();
  1617.     n3f( N054);
  1618.     v3f( P054);
  1619.     n3f( N100);
  1620.     v3f( P100);
  1621.     n3f( N062);
  1622.     v3f( P062);
  1623.     endpolygon();
  1624.     bgnpolygon();
  1625.     n3f( N100);
  1626.     v3f( P100);
  1627.     n3f( N063);
  1628.     v3f( P063);
  1629.     n3f( N002);
  1630.     v3f( P002);
  1631.     endpolygon();
  1632.     bgnpolygon();
  1633.     n3f( N100);
  1634.     v3f( P100);
  1635.     n3f( N002);
  1636.     v3f( P002);
  1637.     n3f( N062);
  1638.     v3f( P062);
  1639.     endpolygon();
  1640. }
  1641.  
  1642. whale016()
  1643. {
  1644.     lmbind(LMODEL,0);
  1645.     cpack(0xFF1E1E1E);
  1646.     bgnpolygon();
  1647.     v3f( P104);
  1648.     v3f( P105);
  1649.     v3f( P106);
  1650.     endpolygon();
  1651.     bgnpolygon();
  1652.     v3f( P107);
  1653.     v3f( P108);
  1654.     v3f( P109);
  1655.     endpolygon();
  1656.     bgnpolygon();
  1657.     v3f( P110);
  1658.     v3f( P111);
  1659.     v3f( P112);
  1660.     v3f( P113);
  1661.     v3f( P114);
  1662.     v3f( P115);
  1663.     endpolygon();
  1664.     bgnpolygon();
  1665.     v3f( P116);
  1666.     v3f( P117);
  1667.     v3f( P118);
  1668.     v3f( P119);
  1669.     v3f( P120);
  1670.     v3f( P121);
  1671.     endpolygon();
  1672.     lmbind(LMODEL,1);
  1673. }
  1674.  
  1675. float seg0;
  1676. float seg1;
  1677. float seg2;
  1678. float seg3;
  1679. float seg4;
  1680. float seg5;
  1681. float seg6;
  1682. float seg7;
  1683.  
  1684. float pitch;
  1685.  
  1686. draw_whale(struct fish *pfish)
  1687. {
  1688.     float thrash,chomp;
  1689.  
  1690.     pfish->htail = (int)(pfish->htail - (int)(5. * pfish->v)) % 360;
  1691.  
  1692.     thrash = 70. * pfish->v;
  1693.  
  1694.     seg0 = 1.5 * thrash * fsin((pfish->htail      )  * RRAD);
  1695.     seg1 = 2.5 * thrash * fsin((pfish->htail + 10.)  * RRAD);
  1696.     seg2 = 3.7 * thrash * fsin((pfish->htail + 15.)  * RRAD);
  1697.     seg3 = 4.8 * thrash * fsin((pfish->htail + 23.)  * RRAD);
  1698.     seg4 = 6.0 * thrash * fsin((pfish->htail + 28.)  * RRAD);
  1699.     seg5 = 6.5 * thrash * fsin((pfish->htail + 35.) * RRAD);
  1700.     seg6 = 6.5 * thrash * fsin((pfish->htail + 40.) * RRAD);
  1701.     seg7 = 6.5 * thrash * fsin((pfish->htail + 55.) * RRAD);
  1702.  
  1703.     pitch = pfish->v * fsin((pfish->htail - 160.) * RRAD);
  1704.  
  1705.     if(pfish->v > 2.0) chomp = - (pfish->v - 2.0) * 200.0;
  1706.  
  1707.     P012[1] = iP012[1] + seg5;
  1708.     P013[1] = iP013[1] + seg5;
  1709.     P014[1] = iP014[1] + seg5;
  1710.     P015[1] = iP015[1] + seg5;
  1711.     P016[1] = iP016[1] + seg5;
  1712.     P017[1] = iP017[1] + seg5;
  1713.     P018[1] = iP018[1] + seg5;
  1714.     P019[1] = iP019[1] + seg5;
  1715.  
  1716.     P020[1] = iP020[1] + seg4;
  1717.     P021[1] = iP021[1] + seg4;
  1718.     P022[1] = iP022[1] + seg4;
  1719.     P023[1] = iP023[1] + seg4;
  1720.     P024[1] = iP024[1] + seg4;
  1721.     P025[1] = iP025[1] + seg4;
  1722.     P026[1] = iP026[1] + seg4;
  1723.     P027[1] = iP027[1] + seg4;
  1724.  
  1725.     P028[1] = iP028[1] + seg2;
  1726.     P029[1] = iP029[1] + seg2;
  1727.     P030[1] = iP030[1] + seg2;
  1728.     P031[1] = iP031[1] + seg2;
  1729.     P032[1] = iP032[1] + seg2;
  1730.     P033[1] = iP033[1] + seg2;
  1731.     P034[1] = iP034[1] + seg2;
  1732.     P035[1] = iP035[1] + seg2;
  1733.  
  1734.     P036[1] = iP036[1] + seg1;
  1735.     P037[1] = iP037[1] + seg1;
  1736.     P038[1] = iP038[1] + seg1;
  1737.     P039[1] = iP039[1] + seg1;
  1738.     P040[1] = iP040[1] + seg1;
  1739.     P041[1] = iP041[1] + seg1;
  1740.     P042[1] = iP042[1] + seg1;
  1741.     P043[1] = iP043[1] + seg1;
  1742.  
  1743.     P044[1] = iP044[1] + seg0;
  1744.     P045[1] = iP045[1] + seg0;
  1745.     P046[1] = iP046[1] + seg0;
  1746.     P047[1] = iP047[1] + seg0;
  1747.     P048[1] = iP048[1] + seg0;
  1748.     P049[1] = iP049[1] + seg0;
  1749.     P050[1] = iP050[1] + seg0;
  1750.     P051[1] = iP051[1] + seg0;
  1751.  
  1752.     P009[1] = iP009[1] + seg6;
  1753.     P010[1] = iP010[1] + seg6;
  1754.     P075[1] = iP075[1] + seg6;
  1755.     P076[1] = iP076[1] + seg6;
  1756.  
  1757.     P001[1] = iP001[1] + seg7;
  1758.     P011[1] = iP011[1] + seg7;
  1759.     P068[1] = iP068[1] + seg7;
  1760.     P069[1] = iP069[1] + seg7;
  1761.     P070[1] = iP070[1] + seg7;
  1762.     P071[1] = iP071[1] + seg7;
  1763.     P072[1] = iP072[1] + seg7;
  1764.     P073[1] = iP073[1] + seg7;
  1765.     P074[1] = iP074[1] + seg7;
  1766.  
  1767.     P091[1] = iP091[1] + seg3 * 1.1;
  1768.     P092[1] = iP092[1] + seg3;
  1769.     P093[1] = iP093[1] + seg3;
  1770.     P094[1] = iP094[1] + seg3;
  1771.     P095[1] = iP095[1] + seg3 * 0.9;
  1772.  
  1773.     P099[1] = iP099[1] + chomp;
  1774.     P098[1] = iP098[1] + chomp;
  1775.     P064[1] = iP064[1] + chomp;
  1776.     P061[1] = iP061[1] + chomp;
  1777.     P097[1] = iP097[1] + chomp;
  1778.     P096[1] = iP096[1] + chomp;
  1779.  
  1780.     pushmatrix();
  1781.  
  1782.     rot(pitch,'x');
  1783.  
  1784.     translate(0.0,0.0,8000.);
  1785.  
  1786.     rot(180.,'y');
  1787.  
  1788.     scale(3.0,3.0,3.0);
  1789.  
  1790.     backface(1);
  1791.     whale001();                                                 
  1792.     whale002();                                                 
  1793.     whale003();                                                 
  1794.     whale004();                                                 
  1795.     whale005();                                                 
  1796.     whale006();                                                 
  1797.     whale007();                                                 
  1798.     whale008();                                                 
  1799.     whale009();                                                 
  1800.     whale010();                                                 
  1801.     whale011();                                                 
  1802.     whale012();                                                 
  1803.     whale013();                                                 
  1804.     whale014();                                                 
  1805.     whale015();                                                 
  1806.     whale016();                                                 
  1807.     backface(0);
  1808.     popmatrix();
  1809. }
  1810.